<html>
<head>
<script type="text/javascript"
        src="../../../../third_party/webgl_conformance/resources/webgl-test-harness.js">
</script>
<script>
// We parse the test list offline and run the harness multiple times with each
// test. Therefore, the version and options do not matter for the browsertests.
// However, we still need to pass in a valid options for the harness to run.
var CONFORMANCE_TEST_VERSION = "1.0.1 (beta)";
var OPTIONS = {
  version: CONFORMANCE_TEST_VERSION
};

var BASE_URL = "../../../../third_party/webgl_conformance/";
var gl = null;
var messages = [];
var numFailures = 0;

function start(start_url) {
  // Report function called by each conformance test.
  function report(type, msg, success) {
    var reportType = WebGLTestHarnessModule.TestHarness.reportType;
    switch (type) {
      case reportType.START_PAGE:
        // Accept every page loaded.
        messages = [];
        numFailures = 0;
        return true;
      case reportType.TEST_RESULT:
        if (!success) {
          ++numFailures;
          messages.push("FAILURE: " + msg);
        }
        break;
      case reportType.FINISH_PAGE:
        if (success === undefined) {
          ++numFailures;
          messages.push("TIMEOUT: " +
              window.webglTestHarness.timeoutDelay + " ms");
        }
      case reportType.FINISHED_ALL_TESTS:
        if (numFailures > 0) {
          var ext = gl.getExtension("WEBGL_debug_renderer_info");
          if (ext) {
            messages.push("GL_VENDOR: " +
                gl.getParameter(ext.UNMASKED_VENDOR_WEBGL));
            messages.push("GL_RENDERER: " +
                gl.getParameter(ext.UNMASKED_RENDERER_WEBGL));
          }
        } else {
          messages.push("SUCCESS");
        }
        domAutomationController.send(messages.join("\n"));
        break;
    }
  }

  function create3DContext() {
    var canvas = document.createElement("canvas");
    var context = null;
    try {
      context = canvas.getContext("webgl");
    } catch(e) {
    }
    if (!context) {
      try {
        context = canvas.getContext("experimental-webgl");
      } catch(e) {
      }
    }
    return context;
  }

  // Assert the WebGL context exists.
  gl = create3DContext();
  if (!gl) {
    domAutomationController.send("FAILURE: unable to fetch WebGL context");
    return;
  }

  var iframe = document.getElementById("testframe");
  var testHarness = new WebGLTestHarnessModule.TestHarness(
      iframe,
      BASE_URL + start_url,
      report,
      OPTIONS);

  window.webglTestHarness = testHarness;
  window.webglTestHarness.runTests();
}
</script>
</head>
<body>
<iframe id="testframe" scrolling="yes" width="100%" height="100%"></iframe>
</body>
</html>
